//#include <cctype>
//#include <iostream>
//#include <string>
//using namespace std;
//
//int main() {
//    string str;
//    while (cin >> str)
//    {
//        string restr;
//        bool flag = false;
//        int i = 0;
//        for (i = 0; i < str.size(); ++i)
//        {
//            if (i + 1 < str.size() && str[i] == '_' && isalpha(str[i + 1]))
//            {
//                restr += toupper(str[i + 1]);
//                ++i;
//                continue;
//            }
//            restr += str[i];
//        }
//        cout << restr << endl;
//    }
//    return 0;
//}
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    string str;
    while (getline(cin, str))
    {
        int i = 0;
        while (!isalpha(str[i]))
            ++i;
        string restr;
        for (; i < str.size(); ++i)
        {
            while (!isalpha(str[i]))
            {
                ++i;
                if (isalpha(str[i]))
                    restr += ' ';
            }
            restr += str[i];
        }
        reverse(restr.begin(), restr.end());
        int pos = 0;
        int start = 0;
        while ((pos = restr.find(' ', pos)) != -1)
        {
            reverse(restr.begin() + start, restr.begin() + pos);
            pos++;
            start = pos;
        }
        reverse(restr.begin() + start, restr.end());
        cout << restr;
    }
    return 0;
}